import Vue from 'vue'
import Router from 'vue-router'
import Layout from '@/layout'
Vue.use(Router)
// 静态路由表
export const routes = [
  {
    path: '/login',
    component: () => import('@/views/Login/index'),
    hidden: true
  },
  {
    path: '/addCard',
    component: () => import('@/views/Car/CarCard/add-card')
  },
  {
    path: '/addEnterprise',
    component: () => import('@/views/Park/Enterprise/AddEnterprise')
  },
  {
    path: '/enterpriseDetail',
    component: () => import('@/views/Park/Enterprise/EnterpriseDetail')
  },
  {
    path: '/enterpriseDetail',
    component: () => import('@/views/Park/Enterprise/EnterpriseDetail')
  },
  {
    path: '/addRole',
    component: () => import('@/views/System/Role/addRole')
  },
  {
    path: '/',
    component: Layout,
    redirect: '/workbench'
  },
  // 工作台
  {
    path: '/workbench',
    component: Layout,
    children: [
      {
        path: '',
        component: () => import('@/views/Workbench/index'),
        meta: { title: '工作台', icon: 'el-icon-data-board' }
      }
    ]
  },
  {
    path: '/404',
    component: () => import('@/views/404'),
    hidden: true
  }
  // // 园区管理
  // {
  //   path: '/park',
  //   component: Layout,
  //   permission: 'park',
  //   meta: { title: '园区管理', icon: 'el-icon-office-building' },
  //   children: [
  //     {
  //       path: 'building',
  //       permission: 'park:building',
  //       meta: { title: '楼宇管理' },
  //       component: () => import('@/views/Park/Building/index')
  //     },
  //     {
  //       path: 'enterprise',
  //       permission: 'park:enterprise',
  //       meta: { title: '企业管理' },
  //       component: () => import('@/views/Park/Enterprise/index')
  //     }
  //   ]
  // },
  // // 行车管理
  // {
  //   path: '/parking',
  //   component: Layout,
  //   permission: 'parking',
  //   meta: { title: '行车管理', icon: 'el-icon-guide' },
  //   children: [
  //     {
  //       path: 'area',
  //       permission: 'parking:area',
  //       component: () => import('@/views/Car/CarArea'),
  //       meta: { title: '区域管理' }
  //     },
  //     {
  //       path: 'card',
  //       permission: 'parking:card',
  //       component: () => import('@/views/Car/CarCard'),
  //       meta: { title: '月卡管理' }
  //     },
  //     {
  //       path: 'pay',
  //       permission: 'parking:payment',
  //       component: () => import('@/views/Car/CarPay'),
  //       meta: { title: '停车缴费管理' }
  //     },
  //     {
  //       path: 'rule',
  //       permission: 'parking:rule',
  //       component: () => import('@/views/Car/CarRule'),
  //       meta: { title: '计费规则管理' }
  //     }
  //   ]
  // },
  // //  一体杆
  // {
  //   path: '/pole',
  //   component: Layout,
  //   permission: 'pole',
  //   meta: { title: '一体杆管理', icon: 'el-icon-refrigerator' },
  //   children: [
  //     {
  //       path: 'info',
  //       permission: 'pole:info',
  //       component: () => import('@/views/Rod/RodManage'),
  //       meta: { title: '一体杆管理' }
  //     },
  //     {
  //       path: 'waring',
  //       permission: 'pole:warning',
  //       component: () => import('@/views/Rod/RodWarn'),
  //       meta: { title: '告警记录' }
  //     }
  //   ]
  // },
  // // 系统管理
  // {
  //   path: '/sys',
  //   component: Layout,
  //   permission: 'sys',
  //   meta: { title: '系统管理', icon: 'el-icon-setting' },
  //   children: [
  //     {
  //       path: 'role',
  //       permission: 'sys:role',
  //       component: () => import('@/views/System/Role/index'),
  //       meta: { title: '角色管理' }
  //     },
  //     {
  //       path: 'user',
  //       permission: 'sys:user',
  //       component: () => import('@/views/System/Employee/index'),
  //       meta: { title: '员工管理' }
  //     }
  //   ]
  // },
  // // 物业费
  // {
  //   path: '/propertyCost',
  //   component: Layout,
  //   permission: 'propertyFee',
  //   children: [
  //     {
  //       path: '',
  //       component: () => import('@/views/Propety'),
  //       meta: { title: '物业费', icon: 'el-icon-data-board' }
  //     }
  //   ]
  // }

]
// 增加路由的方法
const createRouter = () => new Router({
  // mode: 'history', // require service support
  mode: 'history',
  scrollBehavior: () => ({ y: 0 }),
  // 1. 路由表->routes
  // 2. routes -> 真实的路由对象(内部维护不可见) -> 决定了访问某个path渲染某个组件

  // addRoute(route) -> 真实的路由对象(内部维护不可见)
  // addRoute 动态添加 想在什么时机下往路由中添加路由表都可以 而不受限于初始化阶段
  routes: [...routes]
})

const router = createRouter()
// 默认导出 增加的 组合路由
export default router

// 导出 重置路由方法
// 重置路由方法 [不是官方方法 作者hack出来]
export function resetRouter () {
  // 得到一个全新的router实例对象
  const newRouter = createRouter()
  // 使用新的路由记录覆盖掉老的路由记录
  router.matcher = newRouter.matcher
}
